from ctypes import *
from enum import Enum

face_dll = CDLL("libarcsoft_face.dll")
face_engine_dll = CDLL("libarcsoft_face_engine.dll")

#====================常量类型定义====================
ASF_DETECT_MODE_VIDEO    = 0x00000000        #   视频流检测模式
ASF_DETECT_MODE_IMAGE    = 0xFFFFFFFF        #   图片检测模式

ASF_NONE				 = 0x00000000        #   无属性
ASF_FACE_DETECT			 = 0x00000001        #   此处detect可以是tracking或者detection两个引擎之一，具体的选择由detect mode 确定
ASF_FACERECOGNITION		 = 0x00000004        #   人脸特征
ASF_AGE					 = 0x00000008        #   年龄
ASF_GENDER				 = 0x00000010        #   性别
ASF_FACE3DANGLE			 = 0x00000020        #   3D角度
ASF_FACELANDMARK		 = 0x00000040        #   额头区域检测
ASF_LIVENESS			 = 0x00000080        #   RGB活体
ASF_IMAGEQUALITY		 = 0x00000200        #   图像质量检测
ASF_IR_LIVENESS			 = 0x00000400        #   IR活体
ASF_FACESHELTER			 = 0x00000800        #   人脸遮挡
ASF_MASKDETECT			 = 0x00001000        #   口罩检测
ASF_UPDATE_FACEDATA		 = 0x00002000        #   人脸信息

ASVL_PAF_RGB24_B8G8R8    = 0x201             #   图片格式

#检测时人脸角度的优先级--枚举类型
class ArcSoftFaceOrientPriority(Enum):
    ASF_OP_0_ONLY = 0x1,                      #   常规预览下正方向
    ASF_OP_90_ONLY = 0x2,                     #   基于0°逆时针旋转90°的方向
    ASF_OP_270_ONLY = 0x3,                    #   基于0°逆时针旋转270°的方向
    ASF_OP_180_ONLY = 0x4,                    #   基于0°旋转180°的方向（逆时针、顺时针效果一样）
    ASF_OP_0_HIGHER_EXT = 0x5,                #   全角度

#==================================================